package com.ruoyi.crm.service.Impl;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.mybatis.core.page.PageQuery;
import com.ruoyi.common.mybatis.core.page.TableDataInfo;
import com.ruoyi.crm.domain.ProductInfo;
import com.ruoyi.crm.mapper.ProductInfoMapper;
import com.ruoyi.crm.service.IProductInfoService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;

import java.util.Collections;
import java.util.List;

@RequiredArgsConstructor
@Service
public class ProductInfoServiceImpl implements IProductInfoService {

    private final ProductInfoMapper productInfoMapper;

    /**
     * 分页查询产品管理
     * @param productInfo
     * @param pageQuery
     * @return
     */

    @Override
    public TableDataInfo<ProductInfo> selectProductPage(ProductInfo productInfo, PageQuery pageQuery) {
        LambdaQueryWrapper<ProductInfo> queryWrapper = new LambdaQueryWrapper<>();
        if(StringUtils.isNotBlank(productInfo.getProductName())){
            queryWrapper.like(ProductInfo::getProductName,productInfo.getProductName());
        }
        Page<ProductInfo> page=productInfoMapper.selectPage(pageQuery.build(),queryWrapper);
        return TableDataInfo.build(page);
    }

    /**
     * 新增产品管理
     * @param productInfo
     * @return
     */

    @Override
    public int insertProductById(ProductInfo productInfo) {
        return productInfoMapper.insert(productInfo);
    }

    /**
     * 修改产品管理
     * @param productInfo
     * @return
     */

    @Override
    public int updateProductById(ProductInfo productInfo) {
        return productInfoMapper.updateById(productInfo);
    }

    @Override
    public int delectProductById(Long productId) {
        return productInfoMapper.deleteById(productId);
    }

    /**
     * 查询产品管理列表
     * @param productInfo
     * @return
     */

    @Override
    public List<ProductInfo> selectProductList(ProductInfo productInfo) {
        LambdaQueryWrapper<ProductInfo> queryWrapper = new LambdaQueryWrapper<>();
        if(StringUtils.isNotBlank(productInfo.getProductName())){
            queryWrapper.like(ProductInfo::getProductName,productInfo.getProductName());
        }
        return productInfoMapper.selectList(queryWrapper);
    }

    /**
     * 批量新增产品管理
     * @param list
     * @return
     */

    @Override
    public boolean insertProductByIds(List<ProductInfo> list) {
        return productInfoMapper.insertBatch(list);
    }

}
